package com.ruoyi.common.datascope.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据权限过滤注解
 *
 * @author ruoyi
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope {
    /**
     * 部门(业务)表的别名
     */
    String deptAlias() default "";

    /**
     * 用户表的别名
     */
    String userAlias() default "";

    /** 部门字段(关联部门id的字段) */
    String deptField() default "dept_id";

    /** 用户字段(关联用户id的字段, 有可能是用户名) */
    String userField() default "user_id";

    /**业务表的用户字段是否是 用户id  false=否(用户名)  true=是(用户id) 默认为true*/
    boolean userFieldIsUserId() default true;

    /** 是否在结尾拼接企业id条件 */
    boolean hasCompanyId() default false;

    /** 是否是业务数据(因为业务数据中如果在角色选择了仅自己的数据，则不需要关联用户表(即用户别名)) */
    boolean isBusiness() default false;

    /**
     * 权限字符（用于多个角色匹配符合要求的权限）默认根据权限注解@RequiresPermissions获取，多个权限用逗号分隔开来
     */
    String permission() default "";
}
